package com.jilijili.pojo.bo;

import com.jilijili.pojo.Comment;
import lombok.*;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import org.springframework.beans.BeanUtils;
import org.springframework.util.ObjectUtils;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;

/**
 * 评论表
 *
 * @TableName comment
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Accessors(chain = true)
@Builder
public class CommentBo implements Serializable {
    /**
     * 评论的视频是哪个作者（vloger）的关联id
     */
    @NotBlank(message = "留言信息不完整")
    private String vlogerId;

    /**
     * 如果是回复留言，则本条为子留言，需要关联查询
     */
    @NotBlank(message = "留言信息不完整")
    private String fatherCommentId;

    /**
     * 回复的那个视频id
     */
    @NotBlank(message = "评论内容不完整")
    private String vlogId;

    /**
     * 发布留言的用户id
     */
    @NotBlank(message = "当前用信息不正确,请尝试重新登录")
    private String commentUserId;

    /**
     * 留言内容
     */
    @NotBlank(message = "评论内容不能为空")
    @Length(max = 50, message = "评论内容不能超过50个字符")
    private String content;


    public static CommentBo convertCommentBo(final Comment comment) {
        CommentBo commentBo = new CommentBo();
        if (!ObjectUtils.isEmpty(comment)) {
            BeanUtils.copyProperties(comment, commentBo);
        }
        return commentBo;

    }

    public static Comment convertComment(final CommentBo commentBo) {
        Comment comment = new Comment();
        if (!ObjectUtils.isEmpty(commentBo)) {
            BeanUtils.copyProperties(commentBo, comment);
        }
        return comment;
    }
}